The invention relates generally to data transmission in a Fibre Channel network and, more particularly but not by way of limitation, to techniques for controlling the flow of data between Fibre Channel switch devices.
As used herein, the phrase “Fibre Channel” refers to the Fibre Channel family of standards promulgated by the American National Standards Institute as ANSI X.3/T11. In general, Fibre Channel defines a high-speed serial transport system that uses a hierarchically structured information exchange protocol consisting of frames, sequences and exchanges. A “frame” is the atomic unit of data transmission between two communicating devices. A “sequence” is a set of one or more related data frames w transmitted unidirectionally from one device to another device within an exchange. An “exchange” is the basic construct for coordinating the transfer of information between communicating devices during higher layer protocol operations such as Small Computer System Interface (SCSI) and Transport Control Protocol/Internet Protocol (TCP/IP).
In Fibre Channel networks a credit-based protocol is used to manage the pace and flow of frames end-to-end between devices and buffer-to-buffer between a device and the intervening fabric to prevent data overrun at the receiver. The “credit” associated with a flow of frames represents the number of receive buffers allocated to a transmitting port. (See the ANSI X3.297 (1997) standard FC-PH-2 entitled Fibre Channel Physical and Signaling Interface-2 and the ANSI X3.303 (1998) standard FC-PH-3 entitled Fibre Channel Physical and Signaling Interface-3.) In accordance with this standard, Fibre Channel flow control is based on a “push” model (referred to as the cascaded-fabric data transmission model in the FC-PH-3 specification) wherein a frame source pushes data through the network only when it has been granted the credit to do so. Further, credits are withheld or granted without regard to whether the transmitting port can send a frame immediately. As a result, frames can accumulate at the transmitting port (the switch containing the transmitting port) and block other frames from being transmitted. This, in turn, can lead to congestion and head-of-line blocking problems in large port-count switches.
Accordingly, it would be beneficial to provide a technique for managing the flow of frames through a Fibre Channel network comprising large switches that significantly reduce the frame congestion and head-of-line blocking problems associated with a push-type protocol.